1. Technical Field
The present invention relates generally to the field of computer systems, and more specifically to a data processing system, method, and computer program product for invalidating virtual to physical memory pretranslations during dynamic memory removal.
2. Description of Related Art
Personal computer systems are well known in the art. They have attained widespread use for providing computer power to many segments of today's modern society. Personal computers may be defined as desktop systems, floor standing systems, or portable microcomputers. Examples of such personal computer systems are IBM's PC series, Aptiva series, and Thinkpad series.
Many computer systems include a virtual memory address space which permits an application or process to address a space which is larger than the main memory included within the system. In virtual memory systems, it is necessary to translate virtual addresses into physical addresses, also called real addresses, in order to execute commands. One common method for performing the translations is to perform a page table look-up.
To translate is the process of looking up from a centralized record the physical address to which a particular virtual address is mapped. Thus, a pretranslation is obtained using the centralized record. A pretranslation is a copy of the translation. The pretranslation may be stored, such as with a virtual buffer, for later use in order to avoid the process of translation.
The virtual address space is typically divided into equal sized pages. A page table is maintained which includes a physical address for the first byte of main memory for each page of the virtual address space. The page table is stored in main memory and is accessed each time a virtual address is included within a command. In this manner, each time a virtual address is encountered, the physical address must be determined.
Some virtual memory systems utilize a descriptor-based addressing scheme. In a descriptor-based addressing scheme, a memory descriptor accompanies the virtual buffer. The descriptor includes a list of pretranslations of this virtual buffer's virtual addresses to physical addresses. In these systems, multiple copies of a virtual-to-physical pretranslation may exist. A copy of the same pretranslation may appear in the memory descriptor for many different virtual buffers.
In a system using memory descriptors, there may be many different copies of a pretranslation of a virtual page to a real, or physical, page. When these pretranslations change, such as when a physical page is migrated from its original page to another physical page, these pretranslations change. The pretranslations may be rendered invalid. In a memory descriptor system, an invalid pretranslation may appear in multiple, different memory descriptors.
Therefore, a need exists for a method, system, and computer program product for invalidating pretranslations in systems maintaining multiple copies of virtual-to-physical pretranslations.